[INFO] cloning repository https://github.com/SpoonF/rust-engine-3d
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/SpoonF/rust-engine-3d" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSpoonF%2Frust-engine-3d", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSpoonF%2Frust-engine-3d'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 727c2e4d89171f99b64fcd50030b9b1cff95c5fe
[INFO] checking SpoonF/rust-engine-3d against master#c290daa1e5274a52e54a0f49e31bd70192abc606 for pr-133502-23
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSpoonF%2Frust-engine-3d" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/SpoonF/rust-engine-3d
[INFO] finished tweaking git repo https://github.com/SpoonF/rust-engine-3d
[INFO] tweaked toml for git repo https://github.com/SpoonF/rust-engine-3d written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/SpoonF/rust-engine-3d on toolchain c290daa1e5274a52e54a0f49e31bd70192abc606
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/SpoonF/rust-engine-3d already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded zune-jpeg v0.5.11
[INFO] [stderr]   Downloaded sdl2 v0.38.0
[INFO] [stderr]   Downloaded sdl2-sys v0.38.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1708516a121e6060dbe59f5c7bfda4192a3d5374f9fcec33406ac68760883333
[INFO] running `Command { std: "docker" "start" "1708516a121e6060dbe59f5c7bfda4192a3d5374f9fcec33406ac68760883333", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1708516a121e6060dbe59f5c7bfda4192a3d5374f9fcec33406ac68760883333", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1708516a121e6060dbe59f5c7bfda4192a3d5374f9fcec33406ac68760883333" "/opt/rustwide/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1708516a121e6060dbe59f5c7bfda4192a3d5374f9fcec33406ac68760883333", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1708516a121e6060dbe59f5c7bfda4192a3d5374f9fcec33406ac68760883333" "/opt/rustwide/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.105
[INFO] [stderr]    Compiling quote v1.0.43
[INFO] [stderr]    Compiling zerocopy v0.8.33
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking as-slice v0.2.1
[INFO] [stderr]    Compiling av-scenechange v0.14.1
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling built v0.8.0
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking aligned v0.4.3
[INFO] [stderr]    Compiling sdl2-sys v0.38.0
[INFO] [stderr]     Checking core2 v0.4.0
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]    Compiling pastey v0.1.1
[INFO] [stderr]     Checking y4m v0.8.0
[INFO] [stderr]     Checking bitstream-io v4.9.0
[INFO] [stderr]    Compiling rav1e v0.8.1
[INFO] [stderr]     Checking flate2 v1.1.8
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking imgref v1.12.0
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]     Checking zune-core v0.4.12
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking avif-serialize v0.8.6
[INFO] [stderr]     Checking zune-jpeg v0.4.21
[INFO] [stderr]     Checking pxfm v0.1.27
[INFO] [stderr]     Checking rgb v0.8.52
[INFO] [stderr]    Compiling sdl2 v0.38.0
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking zune-core v0.5.1
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]     Checking zune-jpeg v0.5.11
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking gif v0.14.1
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking moxcms v0.7.11
[INFO] [stderr]    Compiling zerocopy-derive v0.8.33
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking fax v0.2.6
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking tiff v0.10.3
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking ravif v0.12.0
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking rust-3d-engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Read` and `self`
[INFO] [stdout]  --> src/model.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs::{self, File}, io::{BufRead, BufReader, Read}, path::Path};
[INFO] [stdout]   |                ^^^^                                  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ImageBuffer`
[INFO] [stdout]  --> src/model.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use image::{GenericImageView, ImageBuffer};
[INFO] [stdout]   |                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `f32` should have an upper camel case name
[INFO] [stdout]   --> src/geometry.rs:68:22
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl<const N: usize, f32> Vector<N, f32> 
[INFO] [stdout]    |                      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `F32`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/scene.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix`, `get_color_rgb`, and `model::Model`
[INFO] [stdout]  --> src/scene.rs:4:32
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{Shader, geometry::{Matrix, Vector}, model::Model, our_gl::utils::{barycentric, get_color_rgba, get_rgba, get_color_rgb}};
[INFO] [stdout]   |                                ^^^^^^           ^^^^^^^^^^^^                                                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Index`, `Mul`, and `process::Output`
[INFO] [stdout]  --> src/tga.rs:1:55
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs::File, io::{BufReader, Read}, mem, ops::{Index, Mul}, path::Path, process::Output};
[INFO] [stdout]   |                                                       ^^^^^  ^^^               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Float`
[INFO] [stdout]  --> src/tga.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use num::Float;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEPTH` and `self`
[INFO] [stdout]  --> src/our_gl.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{DEPTH, HEIGHT, WIDTH, geometry::{Matrix, Vector}, model::{self, Model}};
[INFO] [stdout]   |             ^^^^^                                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GenericImageView`
[INFO] [stdout]  --> src/model.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use image::{GenericImageView, ImageBuffer};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/model.rs:92:27
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn diffuse(&self, mut uvf: Vector<2, f32>) -> [u8; 4] {
[INFO] [stdout]    |                           ----^^^
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]   --> src/scene.rs:16:45
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(width: usize, height: usize, depth: usize) -> Scene {
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mouse`
[INFO] [stdout]    --> src/scene.rs:128:17
[INFO] [stdout]     |
[INFO] [stdout] 128 |             let mouse: Vec<Keycode> = vec![];
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_mouse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scene`
[INFO] [stdout]   --> src/main.rs:61:26
[INFO] [stdout]    |
[INFO] [stdout] 61 |     scene.wait_for_exit(|scene: &mut Scene, keycodes| {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_scene`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keycodes`
[INFO] [stdout]   --> src/main.rs:61:45
[INFO] [stdout]    |
[INFO] [stdout] 61 |     scene.wait_for_exit(|scene: &mut Scene, keycodes| {
[INFO] [stdout]    |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keycodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE` is never used
[INFO] [stdout]   --> src/main.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const SIZE: f32 = 2.0;
[INFO] [stdout]    |       ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `norms` is never read
[INFO] [stdout]   --> src/model.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Model {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub norms: Vec<Vector<3,f32>>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Model` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `norm` is never used
[INFO] [stdout]    --> src/model.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl Model {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn norm(&self, iface: usize, nvert: usize) -> Vector<3,f32>{
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_rgb` is never used
[INFO] [stdout]    --> src/model.rs:152:4
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn get_rgb(color: u32) -> [u8; 3] {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `len` is never used
[INFO] [stdout]   --> src/geometry.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl<const N: usize, T> Vector<N, T> {
[INFO] [stdout]    | ------------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn len(&self) -> usize{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `round` is never used
[INFO] [stdout]   --> src/geometry.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | / impl<const N: usize, f32> Vector<N, f32> 
[INFO] [stdout] 69 | | where f32: NumCast + Float{
[INFO] [stdout]    | |__________________________- method in this implementation
[INFO] [stdout] 70 |       pub fn round<U: NumCast + num::Zero + Copy>(self) -> Vector<N, U> 
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `x` and `y` are never used
[INFO] [stdout]    --> src/geometry.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl<T: Copy> Vector<2, T>  {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] 205 |     pub fn x(&self) -> T { self[0] }
[INFO] [stdout]     |            ^
[INFO] [stdout] 206 |     pub fn y(&self) -> T { self[1] }
[INFO] [stdout]     |            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `x`, `y`, `z`, and `t` are never used
[INFO] [stdout]    --> src/geometry.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 213 | impl<T: Copy> Vector<4, T>  {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] 214 |     pub fn x(&self) -> T { self[0] }
[INFO] [stdout]     |            ^
[INFO] [stdout] 215 |     pub fn y(&self) -> T { self[1] }
[INFO] [stdout]     |            ^
[INFO] [stdout] 216 |     pub fn z(&self) -> T { self[2] }
[INFO] [stdout]     |            ^
[INFO] [stdout] 217 |     pub fn t(&self) -> T { self[3] }
[INFO] [stdout]     |            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_array`, `nrows`, `ncols`, `col`, and `trunspose` are never used
[INFO] [stdout]    --> src/geometry.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 228 | impl<const ROWS: usize, const COLS: usize> Matrix<ROWS, COLS> {
[INFO] [stdout]     | ------------------------------------------------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn from_array(arr: [Vector<COLS, f32>; ROWS]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn nrows(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn ncols(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn col(&self, idx: usize) -> Vector<ROWS, f32> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn trunspose(&self) -> Matrix<COLS, ROWS> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `MINOR_SIZE` is never used
[INFO] [stdout]    --> src/geometry.rs:275:11
[INFO] [stdout]     |
[INFO] [stdout] 274 | impl<const N: usize> Matrix<N, N> {
[INFO] [stdout]     | --------------------------------- associated constant in this implementation
[INFO] [stdout] 275 |     const MINOR_SIZE: usize = N - 1;
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cross` is never used
[INFO] [stdout]    --> src/scene.rs:150:4
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn cross(v1: Vector<3, f32>, v2: Vector<3, f32>) -> Vector<3, f32> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_rgb` is never used
[INFO] [stdout]   --> src/our_gl.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn get_rgb(color: u32) -> [u8; 3] {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_color_rgb` is never used
[INFO] [stdout]   --> src/our_gl.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn get_color_rgb(rgb: [u8; 3]) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read` and `self`
[INFO] [stdout]  --> src/model.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs::{self, File}, io::{BufRead, BufReader, Read}, path::Path};
[INFO] [stdout]   |                ^^^^                                  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ImageBuffer`
[INFO] [stdout]  --> src/model.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use image::{GenericImageView, ImageBuffer};
[INFO] [stdout]   |                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `f32` should have an upper camel case name
[INFO] [stdout]   --> src/geometry.rs:68:22
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl<const N: usize, f32> Vector<N, f32> 
[INFO] [stdout]    |                      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `F32`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/scene.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Matrix`, `get_color_rgb`, and `model::Model`
[INFO] [stdout]  --> src/scene.rs:4:32
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{Shader, geometry::{Matrix, Vector}, model::Model, our_gl::utils::{barycentric, get_color_rgba, get_rgba, get_color_rgb}};
[INFO] [stdout]   |                                ^^^^^^           ^^^^^^^^^^^^                                                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Index`, `Mul`, and `process::Output`
[INFO] [stdout]  --> src/tga.rs:1:55
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fs::File, io::{BufReader, Read}, mem, ops::{Index, Mul}, path::Path, process::Output};
[INFO] [stdout]   |                                                       ^^^^^  ^^^               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Float`
[INFO] [stdout]  --> src/tga.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use num::Float;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEPTH` and `self`
[INFO] [stdout]  --> src/our_gl.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{DEPTH, HEIGHT, WIDTH, geometry::{Matrix, Vector}, model::{self, Model}};
[INFO] [stdout]   |             ^^^^^                                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GenericImageView`
[INFO] [stdout]  --> src/model.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use image::{GenericImageView, ImageBuffer};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/model.rs:92:27
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn diffuse(&self, mut uvf: Vector<2, f32>) -> [u8; 4] {
[INFO] [stdout]    |                           ----^^^
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]   --> src/scene.rs:16:45
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(width: usize, height: usize, depth: usize) -> Scene {
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mouse`
[INFO] [stdout]    --> src/scene.rs:128:17
[INFO] [stdout]     |
[INFO] [stdout] 128 |             let mouse: Vec<Keycode> = vec![];
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_mouse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scene`
[INFO] [stdout]   --> src/main.rs:61:26
[INFO] [stdout]    |
[INFO] [stdout] 61 |     scene.wait_for_exit(|scene: &mut Scene, keycodes| {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_scene`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keycodes`
[INFO] [stdout]   --> src/main.rs:61:45
[INFO] [stdout]    |
[INFO] [stdout] 61 |     scene.wait_for_exit(|scene: &mut Scene, keycodes| {
[INFO] [stdout]    |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keycodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE` is never used
[INFO] [stdout]   --> src/main.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const SIZE: f32 = 2.0;
[INFO] [stdout]    |       ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `norms` is never read
[INFO] [stdout]   --> src/model.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Model {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub norms: Vec<Vector<3,f32>>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Model` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `norm` is never used
[INFO] [stdout]    --> src/model.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl Model {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn norm(&self, iface: usize, nvert: usize) -> Vector<3,f32>{
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_rgb` is never used
[INFO] [stdout]    --> src/model.rs:152:4
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn get_rgb(color: u32) -> [u8; 3] {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `len` is never used
[INFO] [stdout]   --> src/geometry.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl<const N: usize, T> Vector<N, T> {
[INFO] [stdout]    | ------------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn len(&self) -> usize{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `round` is never used
[INFO] [stdout]   --> src/geometry.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | / impl<const N: usize, f32> Vector<N, f32> 
[INFO] [stdout] 69 | | where f32: NumCast + Float{
[INFO] [stdout]    | |__________________________- method in this implementation
[INFO] [stdout] 70 |       pub fn round<U: NumCast + num::Zero + Copy>(self) -> Vector<N, U> 
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `x` and `y` are never used
[INFO] [stdout]    --> src/geometry.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl<T: Copy> Vector<2, T>  {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] 205 |     pub fn x(&self) -> T { self[0] }
[INFO] [stdout]     |            ^
[INFO] [stdout] 206 |     pub fn y(&self) -> T { self[1] }
[INFO] [stdout]     |            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `x`, `y`, `z`, and `t` are never used
[INFO] [stdout]    --> src/geometry.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 213 | impl<T: Copy> Vector<4, T>  {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] 214 |     pub fn x(&self) -> T { self[0] }
[INFO] [stdout]     |            ^
[INFO] [stdout] 215 |     pub fn y(&self) -> T { self[1] }
[INFO] [stdout]     |            ^
[INFO] [stdout] 216 |     pub fn z(&self) -> T { self[2] }
[INFO] [stdout]     |            ^
[INFO] [stdout] 217 |     pub fn t(&self) -> T { self[3] }
[INFO] [stdout]     |            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_array`, `nrows`, `ncols`, `col`, and `trunspose` are never used
[INFO] [stdout]    --> src/geometry.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 228 | impl<const ROWS: usize, const COLS: usize> Matrix<ROWS, COLS> {
[INFO] [stdout]     | ------------------------------------------------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn from_array(arr: [Vector<COLS, f32>; ROWS]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn nrows(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn ncols(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn col(&self, idx: usize) -> Vector<ROWS, f32> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn trunspose(&self) -> Matrix<COLS, ROWS> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `MINOR_SIZE` is never used
[INFO] [stdout]    --> src/geometry.rs:275:11
[INFO] [stdout]     |
[INFO] [stdout] 274 | impl<const N: usize> Matrix<N, N> {
[INFO] [stdout]     | --------------------------------- associated constant in this implementation
[INFO] [stdout] 275 |     const MINOR_SIZE: usize = N - 1;
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cross` is never used
[INFO] [stdout]    --> src/scene.rs:150:4
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn cross(v1: Vector<3, f32>, v2: Vector<3, f32>) -> Vector<3, f32> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_rgb` is never used
[INFO] [stdout]   --> src/our_gl.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn get_rgb(color: u32) -> [u8; 3] {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_color_rgb` is never used
[INFO] [stdout]   --> src/our_gl.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn get_color_rgb(rgb: [u8; 3]) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 50.94s
[INFO] running `Command { std: "docker" "inspect" "1708516a121e6060dbe59f5c7bfda4192a3d5374f9fcec33406ac68760883333", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1708516a121e6060dbe59f5c7bfda4192a3d5374f9fcec33406ac68760883333", kill_on_drop: false }`
[INFO] [stdout] 1708516a121e6060dbe59f5c7bfda4192a3d5374f9fcec33406ac68760883333
